# Contributor: Jon Ong <jonongjs@rottenmage.com>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Contributor: Anil Madhavapeddy <anil@recoil.org>
# Maintainer: omni <omni+alpine@hack.org>
pkgname=ocaml-camlp4
_pkgname=camlp4
# NOTE: camlp4 version must match ocaml version!
pkgver=4.14.0
_pkgver="${pkgver%.*}+1"
_ocamlver=${pkgver%.*}
pkgrel=2
pkgdesc="Caml preprocessor and pretty-printer"
url="https://github.com/camlp4/camlp4"
arch="all !riscv64" # ocaml
license="LGPL-2.0-or-later-WITH-linking-exception"
depends="ocaml-runtime~$_ocamlver ocaml-ocamlbuild"
depends_dev="$pkgname=$pkgver-r$pkgrel"
makedepends="ocaml~$_ocamlver ocaml-compiler-libs~$_ocamlver
	ocaml-findlib ocaml-ocamlbuild-dev ocamlbuild"
replaces="camlp4"  # for backward compatibility
provides="camlp4=$pkgver-r$pkgrel"  # for backward compatibility
subpackages="$pkgname-dev"
source="$pkgname-$_pkgver.tar.gz::https://github.com/camlp4/camlp4/archive/$_pkgver.tar.gz"
builddir="$srcdir/$_pkgname-${_pkgver/+/-}"

build() {
	./configure \
		--bindir="/usr/bin" \
		--libdir="/usr/lib/ocaml" \
		--pkgdir="/usr/lib/ocaml"
	make -j1 all camlp4/META
}

package() {
	make DESTDIR="$pkgdir" \
		install install-META
}

dev() {
	default_dev
	replaces="camlp4"  # for backward compatibility
	local sitelib="usr/lib/ocaml/$_pkgname"

	cd "$pkgdir"

	mkdir -p "$subpkgdir"/usr
	mv usr/bin "$subpkgdir"/usr/

	local path
	find $sitelib/ -name '*.cmx' -o -name '*.cmxa' > find.tmp
	while IFS= read -r -d '' path; do
		mkdir -p "$subpkgdir"/${path%/*}
		mv "$path" "$subpkgdir"/${path%/*}/
	done < find.tmp
	rm find.tmp
	rmdir "$subpkgdir"/$sitelib 2>/dev/null || true
}

sha512sums="
7838bcfc88edec73667669ea6562435b946e79f0b4a0e8117a83b403936337f08aaf8abe39d8f800483d77381ae122fc89aa68505cf60ec2f1cc835a04da93f2  ocaml-camlp4-4.14+1.tar.gz
"
